Use case

In software and systems engineering, a use case (pronounced /juːs/, a case in the use of a system) is a list of steps, typically defining interactions between a role (known in UML as an "actor") and a system, to achieve a goal. The actor can be a human or an external system.

In systems engineering, use cases are used at a higher level than within software engineering, often representing missions or stakeholder goals. The detailed requirements may then be captured in SysML or as contractual statements.

Contents

History

In 1986 Ivar Jacobson first formulated textual, structural and visual modeling techniques for specifying use cases. In 1992 his co-authored book[1] helped to popularize the technique for capturing functional requirements, especially in software development. Originally he used the terms usage scenarios and usage case, which were the more correct translations of the Swedish word "användningsfall" he used, but found that neither of these terms sounded natural in English, and eventually he settled on the term use case.[2] Since Jacobson originated use case modeling many others have contributed to improving this technique, notably including Alistair Cockburn.

Use case structure

Martin Fowler

Martin Fowler states "There is no standard way to write the content of a use case, and different formats work well in different cases."[3]:100 He describes "a common style to use" as follows:[3]:101

Alistair Cockburn

Alistair Cockburn describes a more detailed structure for a use case, but permits it to be simplified when less detail is needed. His "fully-dressed" use case structure is:[4]:9-10

Fully dressed use case structure

Cockburn's Fully dressed use case template lists the following fields:[5]

In addition, Cockburn suggests using two devices to indicate the nature of each use case: icons for design scope and goal level.

Cockburn's approach has influenced other authors; for example, Alexander and Beus-Dukic generalize Cockburn's "Fully dressed use case" template from software to systems of all kinds, with the following fields differing from Cockburn:[7]

Casual use case structure

Cockburn recognizes that projects may not always need detailed "fully-dressed" use cases. He describes a Casual use case with the fields:[8]

Design scope icon

Cockburn suggests annotating each use case with a symbol to show the "Design Scope", which may be black-box (internal detail is hidden) or white-box (internal detail is shown). Five symbols are available:[9]

Other authors sometimes call use cases at Organization level "Business use cases".[10]

Goal level icon

Cockburn suggests annotating each use case with a symbol to show the "Goal Level";[11] the preferred level is "User-goal" (or colloquially "sea level"[3]:101).

Actors

A use case defines the interactions between external actors and the system under consideration to accomplish a goal. An actor specifies a role played by a person or thing when interacting with the system.[12] The same person using the system may be represented as different actors because they are playing different roles. For example, user "Joe" could be playing the role of a Customer when using an Automated Teller Machine to withdraw cash, or playing the role of a Bank Teller when using the system to restock the cash drawer.

Types of Actors [13]

Use case notation

In the Unified Modeling Language, the relationships between all (or a set of) the use cases and actors are represented in a use case diagram or diagrams, originally based upon Ivar Jacobson's Objectory notation. SysML, a UML profile, uses the same notation at the system block level.

Limitations

Limitations of Use cases include:

See also

References

  1. ^ Jacobson et al, 1992.
  2. ^ Alistair Cockburn, "Use cases, ten years later"
  3. ^ a b c d e f g h Fowler, 2004.
  4. ^ Cockburn, 2001
  5. ^ Cockburn, 2001. Page 120.
  6. ^ Cockburn, 2001. Inside rear cover. Field "Use Case Title".
  7. ^ Alexander and Beus-Dukic, 2009. Page 121
  8. ^ Cockburn, 2001. Page 120.
  9. ^ Cockburn, 2001. Inside front cover. Icons "Design Scope".
  10. ^ Suzanne Robertson. Scenarios in Requirements Discovery. Chapter 3 in Alexander and Maiden, 2004. Pages 39-59.
  11. ^ Cockburn, 2001. Inside front cover. Icons "Goal Level".
  12. ^ http://www.omg.org/docs/formal/07-02-03.pdf §16.3.1
  13. ^ Applying UML and Patterns: An Introduction to object-oriented Analysis and Design and iterative development ISBN 0137488807
  14. ^ Bertrand Meyer. Object Oriented Software Construction. (2nd edition). Prentice Hall, 2000.
  15. ^ Frank Armour and Granville Miller (2000). Advanced Use Case Modeling: Software Systems. Addison-Wesley Professional. ISBN 0201615924. 
  16. ^ Richard Denney (2005). Succeeding with Use Cases: Working Smart to Deliver Quality. Addison-Wesley Professional. ISBN 0321316436. 

Bibliography

External links